/*
 * @desc:
 * @LastEditTime: 2024-03-19 18:38:28
 * @params:
 * @return::
 */
const { body } = require("express-validator");
const validate = require("../middleware/validate");
const { User } = require("../model");
const md5 = require("../util/md5");

exports.register = validate([
  // 1. 配置验证规则
  body("user.nickName").notEmpty().withMessage("昵称不能为空"),
  body("user.openId")
    .notEmpty()
    .withMessage("openId不能为空")
    .custom(async (value) => {
      console.log(value, "-----val");
      // 查询数据库查看数据是否存在
      const user = await User.findOne({ openId: value });
      if (user) {
        return Promise.reject("用户已存在");
      }
    }),
  // body("user.password"),
  //   .notEmpty()
  //   .withMessage("密码不能为空")
  //   .isLength({ min: 6 })
  //   .withMessage("密码长度不能低于6位"),
  // body("user.email")
  //   .notEmpty()
  //   .withMessage("邮箱不能为空")
  //   .isEmail()
  //   .withMessage("邮箱格式不正确")
  //   .bail()
  //   .custom(async (value) => {
  //     // 查询数据库中是否存在该数据
  //     const thisEmail = await User.findOne({ email: value });
  //     if (thisEmail) {
  //       return Promise.reject("该邮箱已被注册");
  //     }
  //   }),
  // body("user.phoneNum")
  //   .notEmpty()
  //   .withMessage("手机号不能为空")
  //   .custom(async (value) => {
  //     // 查询数据库查看数据是否存在
  //     const thisPhoneNum = await User.findOne({ phoneNum: value });
  //     if (thisPhoneNum) {
  //       return Promise.reject("该手机号已被注册");
  //     }
  //   }),
  // body("user.sex").notEmpty().withMessage("性别不能为空"),
]);

exports.login = validate([
  body("user.password").notEmpty().withMessage("密码为空"),
  body("user.userName").notEmpty().withMessage("用户名为空"),
  body("user.openId")
    .notEmpty()
    .custom(async (openId, { req }) => {
      console.log(openId, "--------------openId");
      const thisUser = await User.findOne({ openId: openId });
      console.log(thisUser, "--------------thisUser", openId);
      if (!thisUser) {
        return Promise.reject("用户不存在捏,");
      }
      req.thisUser = thisUser;
    }),
]);

exports.updateOid = validate([
  body("user.openId").isEmpty().withMessage("用户openId为空"),
  body("user._id").isEmpty().withMessage("用户id为空"),
]);
